﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using NP.BPMReportPlatform.Entities.BPM_Business;
using NP.BPMReportPlatform.Entities.BPM_Business.LCZX;
using NP.BPMReportPlatform.MaterialMasterData.Dto;
using NP.BPMReportPlatform.MaterialMasterData.Dtos;
using Volo.Abp.Application.Dtos;

namespace NP.BPMReportPlatform.MaterialMasterData
{
    public interface ILCZXRZXQGLService
    {
        /// <summary>
        /// 插入config
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task InsertConfig(LCZXRZXQGLConfigInputDto model);

        /// <summary>
        /// 更新config
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task UpdateConfig(LCZXRZXQGLConfigInputDto model);

        /// <summary>
        /// 删除config
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteConfig(Guid id);

        /// <summary>
        /// 获取配置列表
        /// </summary>
        /// <returns></returns>
        Task<List<LCZXRZXQGLConfigInputDto>> GetConfig(LCZXRZXQGLConfigInputDto input);


        Task<PagedResultDto<LCZXRZXQGLConfigChild>> GetChildConfigs(Guid configId, int PageIndex = 1, int PageSize = 10);

        Task EditChildConfig(LCZXRZXQGLConfigChild model);

        Task DeleteChildConfig(Guid id);

        Task<PagedResultDto<LCZXRZXQGLDetail>> GetCertificateData(GetCertificateDataInput input);

        Task<string> UpdateCertificateData(UpdateCertificateDataInput input);
    }
}